package it.fantacalcio.struts.form;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import it.fantacalcio.model.Squadra;
import it.fantacalcio.spring.service.MyServiceFactory;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class GiocatoreForm extends ActionForm {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Long id;
	private String cognome;
	private Integer valore;
	private Integer presenze;
	private Integer gol;
	private String ruolo;
	private Long idSquadra;
	private String squadraReale;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getCognome() {
		return cognome;
	}
	public void setCognome(String cognome) {
		this.cognome = cognome.equals("") ? null : cognome;
	}
	public Integer getValore() {
		return valore;
	}
	public void setValore(Integer valore) {
		this.valore = valore==0 ? null : valore;
	}
	public Integer getPresenze() {
		return presenze;
	}
	public void setPresenze(Integer presenze) {
		this.presenze = presenze==0 ? null : presenze;
	}
	public Integer getGol() {
		return gol;
	}
	public void setGol(Integer gol) {
		this.gol = gol==0 ? null : gol;
	}
	public String getRuolo() {
		return ruolo;
	}
	public void setRuolo(String ruolo) {
		this.ruolo = ruolo.equals("") ? null : ruolo;
	}
	public Long getIdSquadra() {
		return idSquadra;
	}
	public void setIdSquadra(Long idSquadra) {
		this.idSquadra = idSquadra;
	}
	public String getSquadraReale() {
		return squadraReale;
	}
	public void setSquadraReale(String squadraReale) {
		this.squadraReale = squadraReale.equals("") ? null : squadraReale;
	}
	
	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		
		ActionErrors errors = new ActionErrors();
		if(this.getCognome()==null || this.getCognome().equals("")){
		 	errors.add("cognome", new ActionMessage("errors.giocatore.cognome.stringa_vuota"));
		}
		if(this.getValore()==null || this.getValore() < 1){
		 	errors.add("valore", new ActionMessage("errors.giocatore.valore.stringa_vuota"));
		}
		if (this.getRuolo()==null || this.getRuolo().equals("")){
			errors.add("ruolo", new ActionMessage("errors.giocatore.ruolo.non_selezionato"));
		}
		if (this.getSquadraReale()==null || this.getSquadraReale().equals("")){
			errors.add("squadraReale", new ActionMessage("errors.giocatore.squadraReale.non_selezionato"));
		}
		List<Squadra> listaSquadra=new ArrayList<Squadra>();
		List<String> listaSquadraReale=new ArrayList<String>();
		if(errors.size()>0){
			try{
				listaSquadra=MyServiceFactory.getSquadraService().list();
				listaSquadraReale=MyServiceFactory.getGiocatoreService().listaSquadreReali();
			}catch (Exception e) {
				e.printStackTrace();
			}
		}
		request.setAttribute("listaSquadra", listaSquadra);
		request.setAttribute("listaSquadraReale", listaSquadraReale);
		return errors;
	}
	
}
